As the capabilities of modern computing devices have grown to meet ever increasing requirements, designers struggle to adapt existing software platforms to entirely new applications. Such devices span a spectrum ranging from pure embedded and hybrid embedded systems to general purpose computer systems. Certain applications, such as medical devices, smartphones, netbooks, and laptop computers are designed to meet strict hardware and software compatibility requirements. Many of these applications require an ever-changing balance between compatibility and security considerations.
Existing software platforms can provide extensive security features when coupled with compatible hardware. For example, data encapsulation and cryptography are common features among mobile operating systems utilizing a secure microcontroller. Hardware components can also contribute to the security of a device when coupled with compatible software. However, the design and development costs associated with such specialized architecture can be substantial.
In addition to the cost considerations, security features can limit the functionality and/or efficiency of a device. At the same time, many of the embedded systems used in common electronic devices are being modified to incorporate more of the functionality of a general purpose computer. For example, Web 2.0-enabled smartphones and netbooks are expected to mimic the online experience provided by a desktop personal computer, without the associated security risks. As designers include greater openness and functionality in the design of these devices, they also increase the possibility of introducing vulnerabilities which can be exploited by malware, Trojans, viruses, and other exploits. As a result, designers are faced with the difficult task of balancing security considerations with those of cost and functionality.